/**
 * 
 *  =========================================================================================================
 * 
 *    小程序数据接口封装 文件名request.js 
 *    使用方式：var r = require('./xxx/xxx/request.js');
 *    
 *    封装方法：
 *    toPost: 
 *        urlPath  接口请求路径    data     明文接口参数    other    其他非加密参数数据
 *        success  成功回调函数
 *        fail     失败回调函数
 *    toGet:
 *        urlPath  接口请求路径
 *        success  成功回调函数
 *        fail     失败回调函数
 *    
 *    调用实例：
 *        var param = {
            code: res.code,
            encryptedData: wx.getStorageSync('encryptedData'),
            iv: wx.getStorageSync('iv')
          }
          r.toPost('/api/login',
            JSON.stringify(param),
            { uuid: wx.getStorageSync('uuid')},
            (res) => {
            成功回调后处理的业务逻辑
          })
 * 
 * 
 *    文件更新时间：2018-08-08 
 * 
 *    开发人员： ****
 * 
 * ===========================================================================================================
 * 
 * 
 *    文件更新时间：2018-08-28
 *
 *    开发人员： ****
 *
 * ===========================================================================================================
 */

// 文件依赖数据 dataUrl

var a = {
  globalData: {
    dataUrl: 'https://zhdj.tzjrkg.com:9443/api' 
    // dataUrl: 'http://192.168.0.26:8086'
    // dataUrl: 'http://192.168.0.33:8086'
    
  },
  config: {
    LOG_SHOW: false // 关闭文件日志打印
  }
}
// 文件依赖js文件
var RSA = require('./wxapp_rsa.js');

function l(...args) {
  if (a.config.LOG_SHOW) {
    console.log(args)
  }
}

function toPost(urlPath, param, success, fail) {
  var header = {
    'Content-Type': "application/x-www-form-urlencoded;charset=UTF-8",
    'token': wx.getStorageSync('token')
  };
  wx.showLoading()
  // 3、调用微信接口
  wx.request({
    url: a.globalData.dataUrl + urlPath,
    data: param,
    method: 'POST',
    header: header,
    dataType: 'json',
    success: function(res) {
      setTimeout(function(){
        wx.hideLoading()
      },500)
      if (res.data.retCode == 'SUCCESS') {
        success(res.data)
      } else if (res.data.retCode == 'SESSIONTIMEOUT') {
        wx.showToast({
          title: '会话已过期,请重新登录!',
          icon: "none",
          duration: 1500
        })
        getUserInfo() //重新登录
      } else {
        wx.showToast({
          title: res.data.retMsg,
          icon: "none",
          duration: 1500
        })
      }
    },
    fail: function(res) {
      console.log(res)
    },
    complete: function(res) {},
  })
}

// 对Get接口做简单封装
function toGet(urlPath, param, success, fail) {
  //请求中
  var header = {
    'Content-Type': "application/x-www-form-urlencoded;charset=UTF-8",
    'token': wx.getStorageSync('token')
  };
  // wx.showLoading() 
  wx.request({
    url: a.globalData.dataUrl + urlPath,
    data: param,
    method: 'GET',
    header: header,
    dataType: 'json',
    success: function(res) {
      // wx.hideLoading()
      if (res.data.retCode == 'SUCCESS') {
        success(res.data)
      } else if (res.data.retCode == 'SESSIONTIMEOUT') {
        wx.showToast({
          title: '会话已过期,请重新登录!',
          icon: "none",
          duration: 1500
        })

        getUserInfo() //重新登录

      } else {
        wx.showToast({
          title: res.data.retMsg,
          icon: "none",
          duration: 1500
        })
      }
    },
    fail: function(res) {
      console.log(res)
    },
    complete: function(res) {},
  })
}
function getUserInfo() {
  console.log('刷新token')
  wx.showToast({
    title: '登录已过期，请重新登录!',
    icon: "none",
    duration: 1500
  })
  setTimeout(function () {
    wx.reLaunch({
      url: '/pages/home/pages/login/login',
    })
  }, 1500)
}

module.exports = {
  toPost: toPost,
  toGet: toGet,
  l: l
}